/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Model;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
import com.towel.el.annotation.Resolvable;

/**
 *
 * @author Felipe
 */
@Entity
@Table(name = "mensalidade")
public class Mensalidade implements Serializable {

    @Id
    @SequenceGenerator(name = "id_mensalidade", sequenceName = "mensalidade_id_mensalidade_seq", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "id_mensalidade")
    @Column(name = "id_mensalidade")
    private Integer idMensalidade;
    @Column(name = "valor")
    @Resolvable(colName = "Valor")
    private BigDecimal valor;
    @Column(name = "paga")
    @Resolvable(colName = "Paga")
    private boolean paga;
    @Column(name = "data_vencimento")
    @Resolvable(colName = "Vencimento")
    @Temporal(TemporalType.DATE)
    private Date dataVencimento;
    @Column(name = "data_pagamento")
    @Resolvable(colName = "Pagamento")
    @Temporal(TemporalType.DATE)
    private Date dataPagamento;
    @JoinColumn(name = "id_carne", referencedColumnName = "id_carne")
    @ManyToOne(optional = false)
    private Carne carne;

    public Mensalidade() {
    }

    public Mensalidade(BigDecimal valor, boolean paga, Date dataVencimento, Date dataPagamento, Model.Carne Carne) {
        this.valor = valor;
        this.paga = paga;
        this.dataVencimento = dataVencimento;
        this.dataPagamento = dataPagamento;
        this.carne = Carne;
    }

    public Model.Carne getCarne() {
        return carne;
    }

    public void setCarne(Model.Carne Carne) {
        this.carne = Carne;
    }

    public Date getDataPagamento() {
        return dataPagamento;
    }

    public void setDataPagamento(Date dataPagamento) {
        this.dataPagamento = dataPagamento;
    }

    public Date getDataVencimento() {
        return dataVencimento;
    }

    public void setDataVencimento(Date dataVencimento) {
        this.dataVencimento = dataVencimento;
    }

    public Integer getIdMensalidade() {
        return idMensalidade;
    }

    public void setIdMensalidade(Integer idMensalidade) {
        this.idMensalidade = idMensalidade;
    }

    public boolean isPaga() {
        return paga;
    }

    public void setPaga(boolean paga) {
        this.paga = paga;
    }

    public BigDecimal getValor() {
        return valor;
    }

    public void setValor(BigDecimal valor) {
        this.valor = valor;
    }
}
